// ==========  This file is under  LGPL, the GNU Lesser General Public Licence
// ==========  Dialing Syntax Analysis (www.aot.ru)
// ==========  Copyright by Dmitry Pankratov, Igor Nozhov, Alexey Sokirko

#ifndef rus_syntax_init_h
#define rus_syntax_init_h

#pragma warning(disable:4786)



#include "RusSynan.h"
#include "../AgramtabLib/RusGramTab.h"
#include "RusOborot.h"
#include "../SynCommonLib/SyntaxInit.h"



class CRusSyntaxOpt :  public CSyntaxOpt
{
public:
	StringVector* m_pAdjPrp;

    CRusSyntaxOpt (MorphLanguageEnum langua);
	void DestroyOptions ();


	bool InitOptionsLanguageSpecific();
	CAgramtab* GetNewGramTab () const;


	bool IsSimilarGroup (int type) const;
	bool IsGroupWithoutWeight(int GroupType, const char* cause) const;
	bool is_firm_group(int GroupType) const;

	
};


typedef enum {
 gDET_ADJ_NOMEN, gWEB_ADDR, gKEYB, gPREP_NOUN, gMODIF_ADJ, 
 gSIMILAR_ADJ,gSIMILAR_NOMEN, gSIMILAR_ADV,
 gGEN_NOUN, gDIR_OBJ, gNOUN_GR, gNOUN_ADJ, gVERB_MODIF,
 gADJ_NOMEN, gFAMILIE_GROUP, gBERUF_NP, gGENIT_NP,
 gSIMILAR_NP, gAPPOSITION, gDISKONT_KONJ, gDISRUPT_CONJ_RELATION,
 gOBOROTS, gSUBJ,
 gSPNAME, gTITLE, gPNAME,
 gPERSON, gAPPOS, gADDITION,
 gMODIF_NUMER, gGEOGR, gGENIT_PRE

} gGroupTypeEnum;

typedef enum {

NOUN_ADJ,                               NUMERALS,
C_NUMERALS,                             NUMERAL_ADVERB,                 NOUN_NUMERAL,
PREP_NOUN,                              SIMILAR_ADJS,                   ADV_VERB,
ADV_ADJ ,                               ADV_ADV,                                COMP_ADV,
NEG_VERB,                               DIR_OBJ,                                GEN_NOUN,
SIMILAR_ADVS,                   VERB_INF,                               SIMILAR_INFS,
NAMES,                                  SIMILAR_NOUN_GROUPS,    NUMERAL_NOUN,
NOUN_GR,                                SELECTIVE_GR,                   WEB_ADDR,
SIMILAR_NUMERALS,               MODIF_ADJ,                              NOUN_NUMERAL_APPROX,
ADV_NUM_ADV,                    APPROX_PREP_NOUN,               NOUN_PARTICIPLE,
SUBJ,                                   OBOROTS,                                        SUB_CLAUSE,
NOUN_ADJUNCT,                   NOUN_DETACHED_ADJ,              KEYB,
DISRUPT_CONJ,                   DISRUPT_CONJ_RELATION,  ADV_PREDIK,
NOUN_ADJ_POSTPOSITION,  WHOSE_SUBORDINATE,              ANAT_COMPAR,
PARENTHESIS_CLAUSE,             RANK_NAMES,                             FOREIGN_TERM,
FROM_COMPAR,                    DIR_OBJ_REV,                    INSTR_OBJ

} rGroupTypeEnum;



#endif
